package com.liqing.movecomment.util;

import com.baomidou.mybatisplus.core.toolkit.IdWorker;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.liqing.movecomment.constant.Constants;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

/**
 * 处理文件的上传下载
 */
public class FileUtils {

    // 文件上传工具类
    public static  String uploadFile(String nginxUrl, MultipartFile file) {
        // 1、判空处理
        if (ObjectUtils.isEmpty(file)) {
            throw new RuntimeException("上传文件不能为空！");
        }
        File dir = new File(Constants.PROJECT_ROOT_DIRECTORY);
        if (!dir.exists()) {
            dir.mkdirs();
        }
        String suffix = file.getOriginalFilename().substring(file.getOriginalFilename().indexOf("."));

        // 使用UUID生成新的文件名
        String fileName = IdWorker.getId() + suffix;
        //构造文件路径

        String path = Constants.PROJECT_ROOT_DIRECTORY + fileName;
        File downFile = new File(path);
        if (!downFile.exists()) {
            try {
                downFile.createNewFile();
                file.transferTo(downFile);
            } catch (IOException e) {
                throw new RuntimeException("文件创建异常!");
            }
        }
        return nginxUrl+"/files/"+fileName;
    }


}
